package com.lz.manage.service;

import java.util.List;
import com.lz.manage.model.domain.TagInfo;
import com.lz.manage.model.vo.tagInfo.TagInfoVo;
import com.lz.manage.model.dto.tagInfo.TagInfoQuery;

import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/**
 * 标签信息Service接口
 * 
 * @author YY
 * @date 2025-07-17
 */
public interface ITagInfoService extends IService<TagInfo>
{
    //region mybatis代码
    /**
     * 查询标签信息
     * 
     * @param tagId 标签信息主键
     * @return 标签信息
     */
    public TagInfo selectTagInfoByTagId(Long tagId);

    /**
     * 查询标签信息列表
     * 
     * @param tagInfo 标签信息
     * @return 标签信息集合
     */
    public List<TagInfo> selectTagInfoList(TagInfo tagInfo);

    /**
     * 新增标签信息
     * 
     * @param tagInfo 标签信息
     * @return 结果
     */
    public int insertTagInfo(TagInfo tagInfo);

    /**
     * 修改标签信息
     * 
     * @param tagInfo 标签信息
     * @return 结果
     */
    public int updateTagInfo(TagInfo tagInfo);

    /**
     * 批量删除标签信息
     * 
     * @param tagIds 需要删除的标签信息主键集合
     * @return 结果
     */
    public int deleteTagInfoByTagIds(Long[] tagIds);

    /**
     * 删除标签信息信息
     * 
     * @param tagId 标签信息主键
     * @return 结果
     */
    public int deleteTagInfoByTagId(Long tagId);
    //endregion
    /**
     * 获取查询条件
     *
     * @param tagInfoQuery 查询条件对象
     * @return 查询条件
     */
    QueryWrapper<TagInfo> getQueryWrapper(TagInfoQuery tagInfoQuery);

    /**
     * 转换vo
     *
     * @param tagInfoList TagInfo集合
     * @return TagInfoVO集合
     */
    List<TagInfoVo> convertVoList(List<TagInfo> tagInfoList);
}
